package com.lh.log.log4j;

import com.lh.log.log4j.interfaces.Log;

/**
 ************************************************
 ** Module : 为什么要重写Log,有二点，
 ** 1是自己可以加入一些其它的东西，比如在LOG里加一些
 ** 监控或者逻辑处理，直接不可以加入自己的东西
 ** 2是即使Logg4j项目提供接口名字有变化，我们只在在这里改
 ** 动就行了，不会影响到上层的调用模块，以后碰到调用别人
 ** 接口的时候，应当先在别人的接口上抽像一层出来，减少耦合度
 ** Date: 2013-3-11  Time: 下午03:13:42 
 ** Author lh 
 ************************************************ 
 */
public class LoggerImpl implements Log {
	
	/** 因为自己写的类名和要引用的类名一样了，固把包的引用带上，更清晰些  **/
	private org.apache.log4j.Logger logger4j;
	
	public LoggerImpl(@SuppressWarnings("rawtypes") Class claz) {
		logger4j = org.apache.log4j.Logger.getLogger(claz);
	}

	@Override
	public void debug(Object message) {
		if(logger4j.isDebugEnabled()){
			logger4j.debug(message);
		}		
	}

	@Override
	public void debug(Object messages, Throwable t) {
		if(logger4j.isDebugEnabled()){
			logger4j.debug(messages,t);
		}	
	}

	@Override
	public void info(Object message) {
		if(logger4j.isDebugEnabled()){
			logger4j.info(message);
		}		
	}

	@Override
	public void info(Object message, Throwable t) {
		if(logger4j.isDebugEnabled()){
			logger4j.info(message,t);
		}
	}

	@Override
	public void warn(Object message) {
		if(logger4j.isDebugEnabled()){
			logger4j.warn(message);
		}
		
	}

	@Override
	public void warn(Object message, Throwable t) {
		if(logger4j.isDebugEnabled()){
			logger4j.warn(message,t);
		}
		
	}

	@Override
	public void error(Object message) {
		if(logger4j.isDebugEnabled()){
			logger4j.error(message);
		}
		
	}

	@Override
	public void error(Object message, Throwable t) {
		if(logger4j.isDebugEnabled()){
			logger4j.error(message,t);
		}
	}

	@Override
	public void fatal(Object message) {
		if(logger4j.isDebugEnabled()){
			logger4j.fatal(message);
		}		
	}

	@Override
	public void fatal(Object message, Throwable t) {
		if(logger4j.isDebugEnabled()){
			logger4j.fatal(message,t);
		}
		
	}

}
